﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DTO;
using DAO;

namespace ProductManagement
{
    public partial class frmDaiLy : Form
    {
        public frmDaiLy()
        {
            InitializeComponent();
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtTen.Text != null && txtTen.Text != "" && txtQuan.Text != null && txtQuan.Text != "")
                {
                    DaiLyDTO daiLy = new DaiLyDTO();
                    daiLy.TenDaiLy = txtTen.Text;
                    daiLy.Quan = txtQuan.Text;
                    DaiLyDAO.InsertDaiLy(daiLy);
                    txtID.Text = daiLy.Id.ToString();
                    frmDaiLy_Load(sender, e);
                }
                else
                {
                    MessageBox.Show("Dữ liệu chưa đúng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Cập nhật không thành công\r\n"+ex.Message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgvDaiLy.SelectedRows.Count > 0)
                {
                    int Id = (int)dgvDaiLy.SelectedRows[0].Cells["ID"].Value;
                    DaiLyDAO.DeleteDaiLy(Id);
                    frmDaiLy_Load(sender, e);
                }
            }
            catch (Exception ex) { MessageBox.Show("Cập nhật không thành công\r\n" + ex.Message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); }
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgvDaiLy.SelectedRows.Count > 0)
                {
                    DaiLyDTO daiLy = new DaiLyDTO();
                    daiLy.Id = (int)dgvDaiLy.SelectedRows[0].Cells["ID"].Value;
                    daiLy.TenDaiLy = txtTen.Text;
                    daiLy.Quan = txtQuan.Text;
                    DaiLyDAO.UpdateDaiLy(daiLy);
                    frmDaiLy_Load(sender, e);
                }
            }
            catch (Exception ex) { MessageBox.Show("Cập nhật không thành công\r\n" + ex.Message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning); }
        }

        private void frmDaiLy_Load(object sender, EventArgs e)
        {
            try
            {
                DataTable dt = DataAccess.Query("select ID, TenDaiLy, Quan from DaiLy order by TenDaiLy");
                dt.Columns.Add("STT");
                for (int i = 0; i < dt.Rows.Count; i++)
                    dt.Rows[i]["STT"] = i + 1;
                dgvDaiLy.DataSource = dt;
                dgvDaiLy.AutoGenerateColumns = false;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Không thể load form\r\n" + ex.Message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                Close();
            }
        }

        private void dataGridView1_SelectionChanged(object sender, EventArgs e)
        {
            try
            {
                if (dgvDaiLy.SelectedRows.Count > 0)
                {
                    btnSua.Enabled = true;
                    btnXoa.Enabled = true;
                    txtID.Text = dgvDaiLy.SelectedRows[0].Cells["ID"].Value.ToString();
                    txtTen.Text = (String)dgvDaiLy.SelectedRows[0].Cells["TenDaiLy"].Value;
                    txtQuan.Text = (String)dgvDaiLy.SelectedRows[0].Cells["Quan"].Value;
                }
                else
                {
                    btnSua.Enabled = false;
                    btnXoa.Enabled = false;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);                
            }
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnImport_Click(object sender, EventArgs e)
        {
            try
            {
                String strFileName = "";
                OpenFileDialog dlg = new OpenFileDialog();
                dlg.Title = "Open file";
                dlg.Filter = "Excel Workbook|*.xls;*.xlsx|All files|*.*";
                dlg.Multiselect = false;
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    strFileName = dlg.FileName;
                    DataTable dt = new DataTable();
                    if (dlg.SafeFileName.IndexOf(".xlsx") >= 0)
                        dt = DataAccess.ImportDataXLSX(strFileName, "DaiLy");
                    else if (dlg.SafeFileName.IndexOf(".xls") >= 0)
                        dt = DataAccess.ImportDataXLS(strFileName, "DaiLy");
                    else
                        dt = DataAccess.ImportDataXLSX(strFileName, "DaiLy");
                    foreach (DataRow aRow in dt.Rows)
                    {
                        DaiLyDTO daiLy = new DaiLyDTO();
                        daiLy.TenDaiLy = aRow[0].ToString();
                        daiLy.Quan = aRow[1].ToString();
                        DaiLyDAO.InsertDaiLy(daiLy);
                    }
                    MessageBox.Show("Import dữ liệu thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    OnLoad(e);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Import dữ liệu không thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
    }
}
